//
//  ZXStringExtension.swift
//  ExtensionTest
//
//  Created by ZX on 2025/2/6.
//

import Foundation


public extension String{
    
    var isTrue : Bool {
        return self == "True" ? true : false
    }
//    var toArray: [Any]? {
//        // 将字符串转换为 Data 类型
//        if let data = self.data(using: .utf8) {
//            do {
//                // 使用 JSONSerialization 将 Data 解析为 JSON 数据
//                let json = try JSONSerialization.jsonObject(with: data, options: [])
//                // 检查解析结果是否为数组
//                if let arr = json as? [Any] {
//                    return arr
//                }
//            } catch {
//                // 处理解析过程中出现的错误
//                print("JSON 解析错误: \(error)")
//            }
//        }
//        return nil
//    }
//    var toDictionary: [String: Any]? {
//        // 先把字符串转换为 Data 类型，因为 JSONSerialization 需要处理 Data
//        if let data = self.data(using: .utf8) {
//            do {
//                // 使用 JSONSerialization 将 Data 解析为 JSON 对象
//                let json = try JSONSerialization.jsonObject(with: data, options: [])
//                // 检查解析结果是否为 [String: Any] 类型的字典
//                if let dict = json as? [String: Any] {
//                    return dict
//                }
//            } catch {
//                // 处理解析过程中出现的错误
//                print("JSON 解析错误: \(error)")
//            }
//        }
//        return nil
//    }
//    
//    func toModel<T: Decodable>() -> T? {
//        // 将字符串转换为 Data 类型，因为 JSONDecoder 需要处理 Data
//        if let data = self.data(using: .utf8) {
//            do {
//                // 创建 JSONDecoder 实例
//                let decoder = JSONDecoder()
//                // 使用 JSONDecoder 对 Data 进行解码，转换为指定类型 T 的实例
//                let model = try decoder.decode(T.self, from: data)
//                return model
//            } catch {
//                // 处理解码过程中出现的错误
//                print("JSON 解码错误: \(error)")
//            }
//        }
//        return nil
//    }
    
    func toHtmlStr(_ cdn: String? = nil) -> String? {
        if self.isEmpty {
            return ""
        }
        
        var modifiedStr = self
        
        if modifiedStr.hasPrefix("https://") || modifiedStr.hasPrefix("http://") {
            return modifiedStr
        }
        
        if modifiedStr.hasPrefix("/") {
            modifiedStr = String(modifiedStr.dropFirst())
        }
        if let cnsStr = cdn {
            return cnsStr + modifiedStr
        }
        return nil
    }
}
